import CryptoJS from "crypto-js";

/**
 * AES加密
 * @param message 要加密的字符串
 * @param key 加密密钥
 * @returns 加密后的字符串，加密失败返回空字符串
 */
export const aesEncrypt = (obj, key = Chan.config.AES_SALT) => {
  try {
    const encrypted = CryptoJS.AES.encrypt(JSON.stringify(obj), key);
    return encrypted.toString();
  } catch (error) {
    console.error("AES加密失败:", error);
    return "";
  }
};

/**
 * AES解密
 * @param encryptedMessage 要解密的字符串
 * @param key 解密密钥（必须与加密时使用的密钥相同）
 * @returns 解密后的原始字符串，解密失败返回空字符串
 */
export const aesDecrypt = (str, key = Chan.config.AES_SALT) => {
  try {
    const decrypted = CryptoJS.AES.decrypt(str, key);
    return decrypted.toString(CryptoJS.enc.Utf8);
  } catch (error) {
    console.error("AES解密失败:", error);
    return "";
  }
};
